﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.CodeDom;

namespace Devtm.Writers
{
    
    public class TypeReference : CodeTypeReference
    {


        private TypeReference(CodeTypeParameter typeParameter) : base(typeParameter)
        {
        }

        private TypeReference(string typeName)
            : base(typeName)
        {
           
        }

        private TypeReference(Type type)
            : base(type)
        {
           
        }

        private TypeReference(CodeTypeReference arrayType, int rank)
            : base(arrayType, rank)
        {
          
        }

        private TypeReference(string typeName, CodeTypeReferenceOptions codeTypeReferenceOption)
            : base(typeName, codeTypeReferenceOption)
        {
            
        }

        private TypeReference(string baseType, int rank)
            : base(baseType, rank)
        {
           
        }

        private TypeReference(string typeName, params CodeTypeReference[] typeArguments)
            : base(typeName, typeArguments)
        {
            
        }

        private TypeReference(Type type, CodeTypeReferenceOptions codeTypeReferenceOption)
            : base(type, codeTypeReferenceOption)
        {
           
        }


        internal static TypeReference Get(Type type)
        {
            return new TypeReference(type);
        }

        internal static TypeReference Get(string type)
        {
            return new TypeReference(type);
        }

        internal static TypeReference Get(CodeTypeParameter type)
        {
            return new TypeReference(type);
        }



    }

}
